package com.wuseguang.springcloud.service;


import com.wuseguang.springcloud.client.ServiceList;
import com.wuseguang.springcloud.entity.*;
import com.wuseguang.springcloud.service.impl.DataManageMentClientServiceFallbackFactory;
import com.wuseguang.springcloud.util.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.Map;

@FeignClient(value = ServiceList.MICROSERVICECLOUD_DATAMANAGEMENT, fallbackFactory = DataManageMentClientServiceFallbackFactory.class/*, configuration = FeignSupportConfig.class*/)
public interface DataManageMentClientService {


    //school
    @RequestMapping(value = "/school/delete")
    Result delete(@RequestParam("id") int id);


    @RequestMapping(value = "/school/add")
    Result add(@RequestBody School school);


    @RequestMapping(value = "/school/update")
    Result update(@RequestBody School school);


    @RequestMapping(value = "/school/findOne")
    Result findOne();


    //commonapplication
    @RequestMapping("/commonapplication/queryfunction")
    Result queryFunction();

    @RequestMapping("/commonapplication/queryfunctionfindall")
    Result queryFunctionFindAll(@RequestParam(value = "type", required = false) Integer type);

    @RequestMapping("/commonapplication/addfunction")
    Result addFunction(@RequestParam(value = "ids") Integer[] ids);


    //teachingclasses
    @RequestMapping("/teachingclasses/findAll")
    Result headTeacHerandTeaching();

    @RequestMapping("/teachingclasses/classesFindAll")
    Result teachingClassesfindAll();

    @RequestMapping("/teachingclasses/onefindClass")
    Result onefindClass(@RequestParam("classid") String classid);

    @RequestMapping("/teachingclasses/updateClass")
    Result updateClass(@RequestParam("classid") String classid,
                       @RequestParam(value = "classicon", required = false) String classicon,
                       @RequestParam("classname") String classname,
                       @RequestParam(value = "slogan", required = false) String slogan);


    ///organizationalstructure
    @RequestMapping("/organizationalstructure/queryorganizationalstructure")
    Result queryOrganizationalStructure();

    @RequestMapping("/organizationalstructure/queryeducation")
    Result queryeDucation();

    @RequestMapping("/organizationalstructure/batchAddition")
    Result batchAddition(@RequestParam("education_id") String education_id);

    @RequestMapping("/organizationalstructure/adddepartment")
    Result addDepartment(@RequestParam("departmentname") String departmentname);

    @RequestMapping("/organizationalstructure/updatedepartment")
    Result updateDepartment(@RequestParam("id") String id, @RequestParam("departmentname") String departmentname);

    @RequestMapping("/organizationalstructure/deldepartment")
    Result delDepartment(@RequestParam("id") String id);

    @RequestMapping("/organizationalstructure/addgrade")
    Result addGradet(@RequestParam("education_id") String education_id);

    @RequestMapping("/organizationalstructure/delgrade")
    Result delGrade(@RequestParam("id") String id);

    @RequestMapping("/organizationalstructure/updategrade")
    Result updateGrade(@RequestParam("name") String name, @RequestParam("id") String id);

    @RequestMapping("/organizationalstructure/updateclass")
    Result updateClass(@RequestParam("name") String name, @RequestParam("id") String id);

    @RequestMapping("/organizationalstructure/delclass")
    Result delClass(@RequestParam("id") String id);

    @RequestMapping("/organizationalstructure/addclass")
    Result addClass(@RequestParam("name") String name, @RequestParam("grade_id") String grade_id);

    @RequestMapping("/organizationalstructure/batchupdateclass")
    Result batchUpDateClass(ClassesList list);


    //subject
    @RequestMapping("/subject/querySubjects")
    Result querySubjects();

    @RequestMapping("/subject/addSubjects")
    Result addSubjects(@RequestParam("name") String name);

    @RequestMapping("/subject/updateSubjects")
    Result updateSubjects(@RequestParam("id") String id, @RequestParam("name") String name);

    @RequestMapping("/subject/delSubjects")
    Result delSubjects(@RequestParam("id") String id);

    @RequestMapping("/subject/querySubjectsById")
    Result querySubjectsById(@RequestParam("id") String id);

    //bancard
    @RequestMapping("/bancard/queryBanCardAll")
    Result queryBanCardAll(@RequestParam(value = "gradeid", required = false) String gradeid,//年级id
                           @RequestParam(value = "classid", required = false) String classid,//班级id
                           @RequestParam(value = "state", required = false) String state,//0是离线  1是在线
                           @RequestParam(value = "deviceid", required = false) String deviceid);//设备号 mac地址

    @RequestMapping("/bancard/updateBancardShutdown")
    Result updateBancardShutdown(@RequestParam(value = "bancardids") String bancardids);

    @RequestMapping("/bancard/updateUpgradeflag")
    Result updateUpgradeflag(@RequestParam(value = "upgradeurl") String upgradeurl,
                             @RequestParam(value = "bancardids") String bancardids);


    @RequestMapping("/bancard/updateBancardRestartflag")
    Result updateBancardRestartflag(@RequestParam(value = "bancardids") String bancardids);

    @RequestMapping("/bancard/updateBancardScreenflag")
    Result updateBancardScreenflag(@RequestParam(value = "bancardids") String bancardids);

    @RequestMapping("/bancard/updatepassword")
    Result updatepassword(@RequestParam(value = "bancardids") String bancardids,//班牌id 格式 "1,2,3"
                          @RequestParam(value = "password") String password);

    @RequestMapping("/bancard/updateVolume")
    Result updateVolume(@RequestParam(value = "bancardids") String bancardids,//班牌id 格式 "1,2,3"
                        @RequestParam(value = "volume") String volume);

    @RequestMapping("/bancard/delBancard")
    Result delBancard(@RequestParam(value = "bancardids") String bancardids);

    @RequestMapping("/bancard/queryDeviceType")
    Result queryDeviceType();

    @RequestMapping("/bancard/queryClassRoomAll")
    Result queryClassRoomAll();

    @RequestMapping("/bancard/queryHolidayAll")
    Result queryHolidayAll(@RequestParam(value = "bancardid", required = false) String bancardid);

    @RequestMapping("/bancard/queryHolidayUse")
    Result queryHolidayUse(@RequestParam(value = "bancardid") String bancardid);

    @RequestMapping("/bancard/updateBancardTime")
    Result updateBancardTime(@RequestParam(value = "bancardids") String bancardids,//班牌id 格式 "1,2,3"
                             @RequestParam(value = "monday", required = false) String monday,//周一到周日 时间格式 "08:00-19:00"
                             @RequestParam(value = "tuesday", required = false) String tuesday,
                             @RequestParam(value = "wednesday", required = false) String wednesday,
                             @RequestParam(value = "thursday", required = false) String thursday,
                             @RequestParam(value = "friday", required = false) String friday,
                             @RequestParam(value = "saturday", required = false) String saturday,
                             @RequestParam(value = "sunday", required = false) String sunday);

    @RequestMapping("/bancard/batchAddHoliday")
    Result batchAddHoliday(@RequestBody HolidayList holidayList);

    @RequestMapping("/bancard/updateDevicTypeorclassroom")
    Result updateDevicTypeorclassroom(@RequestParam(value = "bancardid") String bancardid,//班牌id
                                      @RequestParam(value = "classroomid") String classroomid,//教室id
                                      @RequestParam(value = "deviceType") String deviceType,
                                      @RequestParam(value = "deviceid") String deviceid);

    @RequestMapping("/bancard/batchupdateDevicType")
    Result batchupdateDevicType(@RequestParam(value = "bancardids") String bancardids,//班牌id
                                @RequestParam(value = "deviceType") String deviceType);

    @RequestMapping("/bancard/addDevicTypeorclassroom")
    Result addDevicTypeorclassroom(@RequestParam(value = "deviceid") String deviceid,
                                   @RequestParam(value = "classroomid") String classroomid,
                                   @RequestParam(value = "deviceType") String deviceType);

    @RequestMapping("/bancard/queryDanCardIds")
    Result queryDanCardIds(@RequestParam(value = "classids") String classids);

    @RequestMapping("/bancard/queryEquipmentClassesAll")
    Result queryEquipmentClassesAll();

    @RequestMapping("/bancard/getVersionNumber")
    Result getVersionNumber(@RequestParam("file") MultipartFile file, @RequestParam(value = "bancardids") String bancardids);

    //timetable
    @RequestMapping("/timetable/exportLessonTemplate")
    ResponseEntity<byte[]> exportLessonTemplate(Integer type);

    @RequestMapping("/timetable/addClassDay")
    Result addClassDay(@RequestParam("day") Integer day, @RequestParam("second") Integer second, @RequestParam("classTime") String[] classTime);

    @RequestMapping("/timetable/searchTimetable")
    Result searchTimetable(@RequestParam("timetable") String timetable);

    @RequestMapping("/timetable/addTimetable")
    Result addTimetable(@RequestParam("timetable") String timetable);

    @RequestMapping("/timetable/findClassTimetable")
    Result findClassTimetable(@RequestParam(value = "classid", required = false) String classid);

    @RequestMapping("/timetable/findTecherTimetable")
    Result findTecherTimetable();

    @RequestMapping("/student/findAllStudent")
    Result findAllStudent(@RequestParam(value = "classId", required = false) Integer classId,
                          @RequestParam(value = "stuName", required = false) String stuName,
                          @RequestParam(value = "phone", required = false) String phone,
                          @RequestParam(value = "indexNo", required = false, defaultValue = "1") Integer indexNo,
                          @RequestParam(value = "rows", required = false, defaultValue = "20") Integer rows);

    @RequestMapping("/student/deleteStudent")
    Result deleteStudent(@RequestParam(value = "id", required = false) Integer id);

    @RequestMapping("/student/addStudent")
    Result addStudent(Student student);

    @RequestMapping("/student/batchAdditionStudent")
    Result batchAdditionStudent(@RequestParam(value = "student", required = false) String student);

    @RequestMapping("/student/resetAllStudentPwd")
    Result resetAllStudentPwd(@RequestParam(value = "onePassWord", required = false) String onePassWord,
                              @RequestParam(value = "twoPassWord", required = false) String twoPassWord);

    @RequestMapping("/student/resetStudentPwd")
    Result resetStudentPwd(@RequestParam(value = "id", required = false) Integer id,
                           @RequestParam(value = "onePassWord", required = false) String onePassWord,
                           @RequestParam(value = "twoPassWord", required = false) String twoPassWord);

    @RequestMapping("/student/updateStudent")
    Result updateStudent(Student student);

    @RequestMapping("/teacher/findTeacherAll")
    Result findTeacherAll(@RequestParam(value = "name", required = false) String name,
                          @RequestParam(value = "phone", required = false) String phone,
                          @RequestParam(value = "id", required = false) Integer id,
                          @RequestParam(value = "type", required = false) Integer type,
                          @RequestParam(value = "roleId", required = false) Integer roleId,
                          @RequestParam(value = "indexNo", required = false, defaultValue = "1") Integer indexNo,
                          @RequestParam(value = "rows", required = false, defaultValue = "20") Integer rows);

    @RequestMapping("/teacher/deleteTeacherByid")
    Result deleteTeacherByid(@RequestParam(value = "id", required = false) String id);

    @RequestMapping("/teacher/updateTeacherPassword")
    Result updateTeacherPassword(@RequestParam(value = "id", required = false) Integer id,
                                 @RequestParam(value = "onePassWord", required = false) String onePassWord,
                                 @RequestParam(value = "twoPassWord", required = false) String twoPassWord);

    @RequestMapping("/teacher/updateAllTeacherPassword")
    Result updateAllTeacherPassword(@RequestParam(value = "onePassWord", required = false) String onePassWord,
                                    @RequestParam(value = "twoPassWord", required = false) String twoPassWord);

    @RequestMapping("/teacher/teacherDetection")
    Result teacherDetection(@RequestParam(value = "teacher", required = false) String teacher);

    @RequestMapping("/teacher/batchAdditionTeacher")
    Result batchAdditionTeacher(@RequestParam(value = "teacher", required = false) String teacher);

    @RequestMapping("/teacher/addTeacher")
    Result addTeacher(Teacher teacher);

    @RequestMapping("/student/testStudentData")
    Result testStudentData(@RequestParam(value = "student", required = false) String student);

    @RequestMapping("/student/exportStudentTemplate")
    ResponseEntity<byte[]> exportStudentTemplate();

    @RequestMapping("/teacher/updateTeacher")
    Result updateTeacher(Teacher teacher);

    @RequestMapping("/teacher/exportTeacherTemplate")
    ResponseEntity<byte[]> exportTeacherTemplate();

    @RequestMapping("/roles/findSchoolRoles")
    Result findSchoolRoles(@RequestParam(value = "type", required = false) Integer type);

    @RequestMapping("/department/findSchoolDepartment")
    Result findSchoolDepartment(@RequestParam(value = "type", required = false) Integer type);


    //classroom
    @RequestMapping("/classroom/queryClassRoomAll")
    Result queryClassRoomAll(@RequestParam(value = "indexNo", required = false) Integer indexNo,
                             @RequestParam(value = "rows", required = false) Integer rows,
                             @RequestParam(value = "classid", required = false) String classid,//班级id
                             @RequestParam(value = "classroomname", required = false) String classroomname);//教室名称

    @RequestMapping("/classroom/delClassRoom")
    Result delClassRoom(@RequestParam(value = "classroomid") Integer classroomid);

    @RequestMapping("/classroom/updateClassRoom")
    Result updateClassRoom(@RequestParam(value = "classroomid") Integer classroomid,//教室id
                           @RequestParam(value = "classid", required = false) String classid,//班级id
                           @RequestParam(value = "classroomname", required = false) String classroomname,//教室备注
                           @RequestParam(value = "remarks", required = false) String remarks);

    @RequestMapping("/classroom/updateClassRoomNull")
    Result updateClassRoom(@RequestParam(value = "classid") Integer classid);

    @RequestMapping("/classroom/addClassRoom")
    Result addClassRoom(@RequestParam(value = "classid", required = false) String classid,//班级id
                        @RequestParam(value = "classroomname", required = false) String classroomname,//教室名称
                        @RequestParam(value = "remarks", required = false) String remarks);//教室备注

    @RequestMapping("/classPictures/addClassPictures")
    Result addClassPictures(@RequestParam(value = "name", required = false) String name,
                            @RequestParam(value = "show", required = false, defaultValue = "0") Integer show,
                            @RequestParam(value = "pshow", required = false, defaultValue = "0") Integer pshow,
                            @RequestParam(value = "classId", required = false) Integer[] classId,
                            @RequestParam(value = "pictyresUrl", required = false) String pictyresUrl);

    @RequestMapping("/classPictures/roofPlacementPictures")
    Result roofPlacementPictures(@RequestParam(value = "id", required = false) String id);

    @RequestMapping("/classPictures/deletePictures")
    Result deletePictures(@RequestParam(value = "id", required = false) String id);

    @RequestMapping("/classPictures/findClassPictureList")
    Result findClassPictureList(@RequestParam(value = "classId", required = false) String[] classId,
                                @RequestParam(value = "indexNo", required = false, defaultValue = "1") Integer indexNo,
                                @RequestParam(value = "rows", required = false, defaultValue = "20") Integer rows);


    //classDuty
    @RequestMapping("/classDuty/queryClassDutyAll")
    Result queryClassDutyAll(@RequestParam(value = "classid") Integer classid);

    @RequestMapping("/classDuty/addClassDuty")
    Result addClassDuty(ClassDutyList classDutyList);

    @RequestMapping("/classDuty/findStudentByClassId")
    Result findStudentByClassId(@RequestParam(value = "classid") Integer classid);

    @RequestMapping("/classDuty/autoImportDuty")
    Result autoImportDuty(@RequestParam(value = "classId") Integer classId,
                          @RequestParam(value = "x") Integer x,
                          @RequestParam(value = "y") Integer y);

    @RequestMapping("/classDuty/exportDuty")
    ResponseEntity<byte[]> exportDuty(@RequestParam(value = "classid") Integer classId);

    //attend
    @RequestMapping("/attend/queryAttendAll")
    Result queryAttendAll(@RequestParam(value = "sid", required = false) String sid,//不为null 时查全校
                          @RequestParam(value = "attend_groupid") String attend_groupid,
                          @RequestParam(value = "starttime") String starttime,
                          @RequestParam(value = "endtime") String endtime,
                          @RequestParam(value = "classids", required = false) String classids);

    @RequestMapping("/attend/queryAttendClassidState")
    Result queryAttendClassidState();

    @RequestMapping("/attend/queryAttendGroup")
    Result queryAttendGroup();

    @RequestMapping("/attend/queryAttendGroupAll")
    Result queryAttendGroupAll(@RequestParam(value = "name", required = false) String name);

    @RequestMapping("/attend/delAttendGroupById")
    Result delAttendGroupById(@RequestParam(value = "id") String id);

    @RequestMapping("/attend/queryAttendGroupById")
    Result queryAttendGroupById(@RequestParam(value = "id") String id);

    @RequestMapping("/attend/addAttendGroup")
    Result addAttendGroup(AttendGroup attendGroup);

    @RequestMapping("/attend/updateAttendGroup")
    Result updateAttendGroup(AttendGroup attendGroup);

    @RequestMapping("/attend/queryAttendShiftAll")
    Result queryAttendShiftAll();

    @RequestMapping("/attend/queryAttendShiftById")
    Result queryAttendShiftById(@RequestParam(value = "id") String id);

    @RequestMapping("/attend/updateAttendShiftById")
    Result updateAttendShiftById(AttendShift attendShift);

    @RequestMapping("/attend/addAttendShiftById")
    Result addAttendShiftById(AttendShift attendShift);

    @RequestMapping("/attend/delAttendShiftById")
    Result delAttendShiftById(@RequestParam(value = "id") String id);

    @RequestMapping("/attend/downloadAttend")
    Map<String, Object> downloadAttend(
            @RequestParam(value = "sid", required = false) String sid,//不为null 时查全校
            @RequestParam(value = "attend_groupid") String attend_groupid,
            @RequestParam(value = "starttime") String starttime,
            @RequestParam(value = "endtime") String endtime,
            @RequestParam(value = "classids", required = false) String classids) throws IOException;

    @RequestMapping("/attend/findSchoolDepartmentStudent")
    Result findSchoolDepartmentStudent();

    @RequestMapping("/attend/queryClassCallList")
    Result queryClassCallList(@RequestParam(value = "gradeId", required = false) Integer gradeId,
                              @RequestParam(value = "classId", required = false) Integer classId,
                              @RequestParam(value = "startTime", required = false) String startTime,
                              @RequestParam(value = "endTime", required = false) String endTime,
                              @RequestParam(value = "name", required = false) String name,
                              @RequestParam(value = "indexNo", required = false, defaultValue = "1") Integer indexNo,
                              @RequestParam(value = "rows", required = false, defaultValue = "20") Integer rows);

    @RequestMapping("/teacher/exportTeacher")
    ResponseEntity<byte[]> exportTeacher();

    @RequestMapping("/student/exportStudent")
    ResponseEntity<byte[]> exportStudent(@RequestParam(value = "classId") Integer classId);

    @RequestMapping("/classes/findNoClass")
    Result findNoClass(@RequestParam(value = "gradeId", required = false) Integer gradeId);

    @RequestMapping("/classes/findNoGrade")
    Result findNoGrade();

    @RequestMapping("/classes/findClasses")
    Result findClasses(@RequestParam(value = "gradeId", required = false) Integer gradeId);

    @RequestMapping("/classes/findGrade")
    Result findGrade();

    @RequestMapping("/classNotice/findClassNoticeList")
    Result findClassNoticeList(@RequestParam(value = "classId", required = false) String[] classId,
                               @RequestParam(value = "indexNo", required = false, defaultValue = "1") Integer indexNo,
                               @RequestParam(value = "rows", required = false, defaultValue = "20") Integer rows);

    @RequestMapping("/classNotice/addNotice")
    Result addNotice(@RequestParam(value = "classId", required = false) String[] classId,
                     @RequestParam(value = "content", required = false) String content,
                     @RequestParam(value = "url", required = false) String url,
                     @RequestParam(value = "show", required = false, defaultValue = "0") Integer show,
                     @RequestParam(value = "pshow", required = false, defaultValue = "0") Integer pshow,
                     @RequestParam(value = "state", required = false) Integer state,
                     @RequestParam(value = "annex", required = false) String annex,
                     @RequestParam(value = "website", required = false )String website);

    @RequestMapping("/classNotice/deleteNotice")
    Result deleteNotice(@RequestParam(value = "id", required = false) String id);

    @RequestMapping("/classVideo/findClassVideoList")
    Result findClassVideoList(@RequestParam(value = "classId", required = false) String[] classId,
                              @RequestParam(value = "indexNo", required = false, defaultValue = "1") Integer indexNo,
                              @RequestParam(value = "rows", required = false, defaultValue = "20") Integer rows);

    @RequestMapping("/classVideo/deleteVideo")
    Result deleteVideo(@RequestParam(value = "id", required = false) String id);

    @RequestMapping("/classVideo/roofPlacementVideo")
    Result roofPlacementVideo(@RequestParam(value = "id", required = false) String id);

    @RequestMapping("/classVideo/addClassVideo")
    Result addClassVideo(@RequestParam(value = "name", required = false) String name,
                         @RequestParam(value = "show", required = false, defaultValue = "0") Integer show,
                         @RequestParam(value = "pshow", required = false, defaultValue = "0") Integer pshow,
                         @RequestParam(value = "classId", required = false) Integer[] classId,
                         @RequestParam(value = "videoUrl", required = false) String videoUrl,
                         @RequestParam(value = "videoCover", required = false) String videoCover);


    @RequestMapping("/evaluationLabel/findEvaluationLabel")
    Result findEvaluationLabel();

    @RequestMapping("/evaluationLabel/addEvaluationLabel")
    Result addEvaluationLabel(EvaluationLabel evaluationLabel);

    @RequestMapping("/evaluationModel/addEvaluationModel")
    Result addEvaluationModel(EvaluationModel evaluationModel);

    @RequestMapping("/evaluationModel/findEvaluationModel")
    Result findEvaluationModel();

    @RequestMapping("/evaluationModel/deleteEvaluationModel")
    Result deleteEvaluationModel(@RequestParam("id") Integer id);

    @RequestMapping(value = "/group/findClassIdGroup")
    Result findClassIdGroup(@RequestParam("classId") Integer classId);

    @RequestMapping(value = "/group/addClassIdGroup")
    Result addClassIdGroup(ClassGroup classGroup);

    @RequestMapping("/scoreDisplayRulesTeacher/findScoreDisplayRules")
    Result findScoreDisplayRules();

    @RequestMapping("/scoreDisplayRulesTeacher/addAndUpdateScoreDisplayRulesTeacher")
    Result addAndUpdateScoreDisplayRulesTeacher(@RequestParam(value = "scoreDisplayRulesId", required = false) Integer scoreDisplayRulesId);

    @RequestMapping("/scoreItem/findScoreItem")
    Result findScoreItem();

    @RequestMapping("/scoreItem/addScoreItem")
    Result addScoreItem(ScoreItem scoreItem);

    @RequestMapping("/scoreItem/deleteScoreItem")
    Result deleteScoreItem(@RequestParam("id") Integer id);

    @RequestMapping("/scoreItem/updateScoreItem")
    Result updateScoreItem(ScoreItem scoreItem);

    @RequestMapping("/studentEvaluationScore/findClassEvaluationScore")
    Result findClassEvaluationScore(@RequestParam(value = "classId", required = false) Integer classId);

    @RequestMapping("/studentEvaluationScore/addStudentEvaluationScore")
    Result addStudentEvaluationScore(@RequestParam(value = "studentId", required = false) Integer[] studentId,
                                     @RequestParam(value = "scoreItemId", required = false) Integer scoreItemId,
                                     @RequestParam(value = "name", required = false) String name,
                                     @RequestParam(value = "fraction", required = false) Integer fraction,
                                     @RequestParam(value = "content", required = false) String content,
                                     @RequestParam(value = "type", required = false) Integer type,
                                     @RequestParam(value = "classId", required = false) Integer classId,
                                     @RequestParam(value = "groupId", required = false) Integer groupId);

    @RequestMapping("/timetable/findClassDay")
    Result findClassDay();

    @RequestMapping("/homework/findHomework")
    Result findHomework(@RequestParam(value = "classId", required = false) String[] classId,
                        @RequestParam(value = "indexNo", required = false, defaultValue = "1") Integer indexNo,
                        @RequestParam(value = "rows", required = false, defaultValue = "20") Integer rows);

    @RequestMapping("/homework/addHomework")
    Result addHomework(Homework homework);

    @RequestMapping("/homework/deleteHomework")
    Result deleteHomework(Integer id);

    @PostMapping(value = "/file/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    Result upload(@RequestPart("file") MultipartFile file, @RequestParam("type") int type);

    @RequestMapping("/studentFaces/addSutdentFaces")
    Result addSutdentFaces(StudentFaces studentFaces);

    @RequestMapping("/studentFaces/delateStudentFaces")
    Result delateStudentFaces(@RequestParam(value = "studentId") Integer studentId, @RequestParam("classId") Integer classId);

    @RequestMapping("/studentFaces/stuentFacesRegister")
    Result stuentFacesRegister(@RequestParam("classId") int[] classId);

    @RequestMapping("/studentFaces/findClassStudentFaces")
    Result findClassStudentFaces(@RequestParam("classId") Integer classid);

    @RequestMapping("/scoreItem/importClassEvaluationItems")
    Result importClassEvaluationItems(@RequestParam(value = "classId") Integer classId,
                                      @RequestParam(value = "scoreItemId") Integer[] scoreItemId,
                                      @RequestParam(value = "type") Integer type);

    @RequestMapping("/scoreItem/findScoreItemType")
    Result findScoreItemType(@RequestParam(value = "classId") Integer classId,
                             @RequestParam(value = "type", defaultValue = "0") Integer type);

    @RequestMapping("/scoreItem/findTecherClassScoreItem")
    Result findTecherClassScoreItem(@RequestParam(value = "classId") Integer classId);

    @PostMapping(value = "/check/checkContentAndPic", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    Result checkContentAndPic(@RequestParam(value = "content", defaultValue = "") String content,
                              @RequestPart(value = "file",required = false) MultipartFile file,
                              @RequestParam(value = "type", required = false) Integer type);


    @RequestMapping("/vacation/queryStudentVacationAll")
    Result queryStudentVacationAll(@RequestParam(value = "classId", required = false) Integer classId,
                                   @RequestParam(value = "state", required = false) Integer state,
                                   @RequestParam(value = "indexNo", required = false, defaultValue = "1") Integer indexNo,
                                   @RequestParam(value = "rows", required = false, defaultValue = "20") Integer rows);

    @RequestMapping("/vacation/updateStudentVacationState")
    Result updateStudentVacationState(@RequestParam(value = "id") Integer id,
                                      @RequestParam(value = "state") Integer state);

    @RequestMapping("/importAndExportSchools/findStudentInAndOut")
    Result findStudentInAndOut(@RequestParam(value = "classId") Integer classId);

    @RequestMapping("/achievement/addSchoolAchievement")
    Result addSchoolAchievement(@RequestParam(value = "list") String list,
                                @RequestParam(value = "name") String name);

    @RequestMapping("/achievement/querySchoolAchievement")
    Result querySchoolAchievement(@RequestParam(value = "indexNo", required = false, defaultValue = "1") Integer indexNo,
                                  @RequestParam(value = "rows", required = false, defaultValue = "20") Integer rows,
                                  @RequestParam(value = "name", required = false) String name);

    @RequestMapping("/achievement/delSchoolAchievement")
    Result delSchoolAchievement(@RequestParam(value = "id") Integer id);

    @RequestMapping("/achievement/querySchoolAchievementById")
    Result querySchoolAchievementById(@RequestParam(value = "id") Integer id);

    @RequestMapping("/achievement/updateAchievementStudent")
    Result updateAchievementStudent(@RequestParam(value = "id") Integer id,
                                    @RequestParam(value = "classId") String classId);

    @RequestMapping("/achievement/queryCourseList")
    Result queryCourseList(@RequestParam(value = "id") Integer id);

    @RequestMapping("/achievement/querySubjectsAll")
    Result querySubjectsAll();

    @RequestMapping("/achievement/updateAchievementCourse")
    Result updateAchievementCourse(@RequestParam(value = "id") Integer id, @RequestParam(value = "total_score") Integer total_score, @RequestParam(value = "state") Integer state);

    @RequestMapping("/achievement/exportAchievement")
    ResponseEntity<byte[]> exportAchievement(@RequestParam(value = "id") Integer id);

    @RequestMapping("/achievement/queryScoreStatistics")
    Result queryScoreStatistics(@RequestParam(value = "id") Integer id);

    @RequestMapping("/achievement/batchAdditionAchievement")
    public Result batchAdditionAchievement(@RequestParam(value = "list") String list, @RequestParam(value = "id") Integer id);

    @RequestMapping("/achievement/sendParent")
    Result sendParent(@RequestParam(value = "id") Integer id);

    @RequestMapping("/evaluationModel/updateEvaluationModel")
    Result updateEvaluationModel(EvaluationModel evaluationModel);

    @RequestMapping("/evaluationLabel/deleteEvaluationLabel")
    Result deleteEvaluationLabel(@RequestParam(value = "id") Integer id);

    @RequestMapping(value = "/group/deleteClassGroup")
    Result deleteClassGroup(@RequestParam(value = "id") Integer id);

    @RequestMapping("/studentEvaluationScoreRecord/findClassPerformance")
    Result findClassPerformance(@RequestParam(value = "classId", required = false) Integer classId,
                                @RequestParam(value = "type", required = false, defaultValue = "0") Integer type,
                                @RequestParam(value = "findType", required = false, defaultValue = "0") Integer findType,
                                @RequestParam(value = "startTime", required = false) String startTime,
                                @RequestParam(value = "endTime", required = false) String endTime);

    @RequestMapping("/studentEvaluationScoreRecord/deltePerformanceScore")
    Result deltePerformanceScore(@RequestParam(value = "id") Integer id);

    @RequestMapping("/studentEvaluationScoreRecord/findPersonalPerformance")
    Result findPersonalPerformance(@RequestParam(value = "studentId", required = false) Integer studentId,
                                   @RequestParam(value = "findType", required = false, defaultValue = "0") Integer findType,
                                   @RequestParam(value = "startTime", required = false) String startTime,
                                   @RequestParam(value = "endTime", required = false) String endTime);

    @RequestMapping("/studentEvaluationScoreRecord/deleteTextEvaluation")
    Result deleteTextEvaluation(@RequestParam(value = "id", required = false) Integer id);

    @RequestMapping("/studentFaces/findSchoolFaces")
    Result findSchoolFaces(@RequestParam("classId") Integer classId,
                           @RequestParam("indexNo") Integer indexNo,
                           @RequestParam(value = "rows", required = false, defaultValue = "50") Integer rows,
                           @RequestParam(value = "type", defaultValue = "0") Integer type);

    @RequestMapping("/studentFaces/synchronizeFaces")
    Result synchronizeFaces(@RequestParam("classId") Integer classId);

    @RequestMapping("/group/updateClassGroup")
    Result updateClassGroup(ClassGroup classGroup);

    @RequestMapping("/timetable/findDateTimetable")
    Result findDateTimetable(@RequestParam(value = "time") String time);

    @RequestMapping("/examinationRoom/addExaminationRoom")
    Result addExaminationRoom(ExaminationRoom examinationRoom);

    @RequestMapping("/examinationRoom/findExaminationRoom")
    Result findExaminationRoom(@RequestParam(value = "name", required = false) String name);

    @RequestMapping("/examinationRoom/delteExaminationRoom")
    Result delteExaminationRoom(@RequestParam("id") Integer id);

    @RequestMapping("/examinationRoom/openTheExaminationRoom")
    Result openTheExaminationRoom(@RequestParam("id") Integer id,
                                  @RequestParam("pattern") Integer pattern);

    @RequestMapping("/exams/findExamsByExaminationRoomId")
    Result findExamsByExaminationRoomId(@RequestParam("examinationRoomId") Integer examinationRoomId,
                                        @RequestParam(value = "indexNo", required = false, defaultValue = "1") Integer indexNo,
                                        @RequestParam(value = "rows", required = false, defaultValue = "20") Integer rows);

    @RequestMapping("/exams/deleteExamsById")
    Result deleteExamsById(@RequestParam("id") Integer id);

    @RequestMapping("/exams/addExams")
    Result addExams(Exams exams);

    @RequestMapping("/exams/updateExams")
    Result updateExams(Exams exams);

    @RequestMapping("/textEvaluation/addTextEvaluation")
    Result addTextEvaluation(TextEvaluation textEvaluation);

    @RequestMapping("/studentEvaluationScore/findClassEvaluationScoreTwo")
    Result findClassEvaluationScoreTwo(@RequestParam(value = "classId", required = false) Integer classId,
                                       @RequestParam(value = "findType", required = false, defaultValue = "0") Integer findType,
                                       @RequestParam(value = "startTime", required = false) String startTime,
                                       @RequestParam(value = "endTime", required = false) String endTime);

    @RequestMapping("/scoreItem/delteTecherClassScoreItem")
    Result delteTecherClassScoreItem(@RequestParam(value = "id") Integer id);

    @RequestMapping("/activity/addActivity")
    Result addActivity(Activity activity);

    @RequestMapping("/activity/findEnrolledStudentByActivityId")
    Result findEnrolledStudentByActivityId(@RequestParam(value = "id") Integer id,
                                           @RequestParam(value = "classId", required = false, defaultValue = "") String classId,
                                           @RequestParam(value = "quota") Integer quota);

    @RequestMapping("/activity/findActivity")
    Result findActivity(@RequestParam(value = "title", defaultValue = "", required = false) String title,
                        @RequestParam(value = "indexNo", required = false, defaultValue = "1") Integer indexNo,
                        @RequestParam(value = "rows", required = false, defaultValue = "20") Integer rows);

    @RequestMapping("/importAndExportSchools/findInAndOutStatistics")
    Result findInAndOutStatistics();

    @RequestMapping("/classPictures/findPicturesVideoNotice")
    Result findPicturesVideoNotice(@RequestParam(value = "findType", required = false,defaultValue = "0") Integer findType,
                                   @RequestParam(value = "startTime", required = false) String startTime,
                                   @RequestParam(value = "endTime", required = false) String endTime);

    @RequestMapping("/questionnaire/addQuestionnaire")
    Result addQuestionnaire(Questionnaire questionnaire);

    @RequestMapping("/questionnaire/findQuestionnaire")
    Result findQuestionnaire();

    @RequestMapping("/student/findJurisdictionStudent")
    Result findJurisdictionStudent();

    @RequestMapping("/activity/deleteActivityId")
    Result deleteActivityId(Integer id);

    @RequestMapping("/studentEvaluationScoreRecord/findTeacherScoringStatistics")
    Result findTeacherScoringStatistics(Integer teacherId, Integer findType, String startTime, String endTime);

    @RequestMapping("/teacher/findShcoolTeacher")
    Result findShcoolTeacher();


    /*@PostMapping(value = "/file/batchUpload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    Result batchUpload(@RequestPart(value = "file") MultipartFile[] file, @RequestParam("type") int type);*/
}
